package pl.marekbar.komponenty;

import pl.marekbar.Aplikacja;
import pl.marekbar.R;
import android.content.Context;
import android.graphics.Point;
import android.util.AttributeSet;
import android.view.Display;
import android.view.LayoutInflater;
import android.view.View;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.TableLayout;
import android.widget.TextView;

public class Wybieracz extends LinearLayout
{
	public Wybieracz(Context context, AttributeSet attrs, int defStyle)
	{
		super(context, attrs, defStyle);
		final LayoutInflater inflater = (LayoutInflater) context
				.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
		inflater.inflate(R.layout.wybieracz, this);
		inicjuj(context);
	}



	public Wybieracz(Context context, AttributeSet attrs)
	{
		super(context, attrs);
		final LayoutInflater inflater = (LayoutInflater) context
				.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
		inflater.inflate(R.layout.wybieracz, this);
		inicjuj(context);
	}



	public Wybieracz(Context context)
	{
		super(context);
		final LayoutInflater inflater = (LayoutInflater) context
				.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
		inflater.inflate(R.layout.wybieracz, this);
		inicjuj(context);
	}



	private void inicjuj(Context context)
	{
		lewy = (Button) findViewById(R.id.wybieraczPrzyciskMinus);
		lewy.setBackgroundResource(R.drawable.minus);
		prawy = (Button) findViewById(R.id.wybieraczPrzyciskPlus);
		prawy.setBackgroundResource(R.drawable.plus);
		ekran = (TextView) findViewById(R.id.wybieraczTekst);
		lewy.setOnClickListener(lewySluchacz);
		prawy.setOnClickListener(prawySluchacz);
		WindowManager wm = (WindowManager) context
				.getSystemService(Context.WINDOW_SERVICE);
		Display display = wm.getDefaultDisplay();
		Point rozmiar = new Point();
		display.getSize(rozmiar);
		TableLayout tl = (TableLayout) findViewById(R.id.tabelaWybieracza);
		TableLayout.LayoutParams parametry = new TableLayout.LayoutParams();
		int margines = (rozmiar.x - tl.getWidth()) / 2;
		parametry.setMargins(margines, 0, margines, 0);
		tl.setLayoutParams(parametry);
	}

	private Button lewy;
	private Button prawy;
	private TextView ekran;
	private int minimum = 0;
	private int maksimum = 0;
	private float wartosc = 0;



	public void ustawMaxZakres(int ile)
	{
		this.maksimum = ile;
	}



	public void ustawMinZakres(int ile)
	{
		this.minimum = ile;
	}



	public void ustawWartosc(float ile)
	{
		ekran.setText(Float.toString(ile));
		wartosc = ile;
	}

	private OnClickListener lewySluchacz = new OnClickListener()
	{

		@Override
		public void onClick(View v)
		{
			Aplikacja.info("Minus: " + Float.toString(wartosc));
			if ((wartosc - 0.5f) >= minimum)
			{
				wartosc -= 0.5f;
				ekran.setText(Float.toString(wartosc));
			}
		}
	};

	private OnClickListener prawySluchacz = new OnClickListener()
	{

		@Override
		public void onClick(View v)
		{
			Aplikacja.info("Plus: " + Float.toString(wartosc));
			if ((wartosc + 0.5f) <= maksimum)
			{
				wartosc += 0.5f;
				ekran.setText(Float.toString(wartosc));
			}
		}
	};
}
